
package com.ec.socialfun.controladores;

import com.ec.socialfun.datamanager.ComentariosDataManager;
import com.ec.socialfun.entidades.Usuario;
import com.ec.socialfun.excepciones.EnvioMailException;
import com.ec.socialfun.servicios.UsuarioFacade;
import com.ec.socialfun.servicios.externos.EnvioDeMailServicio;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import javax.faces.component.UIForm;
import org.jboss.logging.Logger;

@ManagedBean
@RequestScoped
public class ComentariosControlador extends PadreControlador {
    
    String comentario;
    private static final Logger LOG = Logger.getLogger(ComentariosControlador.class.getName());
    @EJB
    private UsuarioFacade usuarioFacade;
    @EJB
    private EnvioDeMailServicio envioDeMailServicio;
    @ManagedProperty(value = "#{comentariosDataManager}")
    private ComentariosDataManager comentariosDataManager;
    
     private UIForm FormularioComentario;
    
    public ComentariosControlador(){
        
    }

    public UIForm getFormularioComentario() {
            Usuario usuario = usuarioFacade.recuperaUsuarioPorMail(obtenerUsuarioLogeado());
            getComentariosDataManager().setUsuario(usuario);
            LOG.info("usuario"+getComentariosDataManager().getUsuario().getUsCorreo());
        return FormularioComentario;
    }

    public void setFormularioComentario(UIForm FormularioComentario) {
        this.FormularioComentario = FormularioComentario;
    }
    
    
    
    @Override
    public void iniciarDatos() {
      LOG.info("IniciarDatos");
      getComentariosDataManager().setBand(false);
    }
    
    public void enviarComentario() {
       try {
            comentario = getComentariosDataManager().getComentario();
            LOG.info("comentario "+comentario);
            envioDeMailServicio.enviarMailDeComentarios(usuarioFacade.recuperaUsuarioPorMail(obtenerUsuarioLogeado()), comentario);
            this.mensajeExitoso("Comentario o Sugerencia enviado con exito"); 
            getComentariosDataManager().setBand(true);
            getComentariosDataManager().setComentario(null);
        } 
       catch (EnvioMailException e) {
           LOG.error("Error al guardar comentario " + e);
            this.mensajeError("Error al realizar el envio");
        }
    }
    
   public ComentariosDataManager getComentariosDataManager() {
        return comentariosDataManager;
    }

    public void setComentariosDataManager(ComentariosDataManager comentariosDataManager) {
        this.comentariosDataManager = comentariosDataManager;
    }
    
    
}
